package pe.gob.foncodes.ssa.bs.seguridad.service;

import java.util.List;
import pe.gob.foncodes.ssa.bs.common.service.GenericService;
import pe.gob.foncodes.ssa.bs.common.util.ServiceException;
import pe.gob.foncodes.ssa.bs.seguridad.domain.Accion;
import pe.gob.foncodes.ssa.bs.seguridad.domain.HorarioPerfil;
import pe.gob.foncodes.ssa.bs.seguridad.domain.Modulo;
import pe.gob.foncodes.ssa.bs.seguridad.domain.Opcion;
import pe.gob.foncodes.ssa.bs.seguridad.domain.Usuario;
import pe.gob.foncodes.ssa.bs.seguridad.domain.UsuarioPerfil;

public interface UsuarioService extends GenericService {

    public List<Opcion> getFirstLevelNodes(Long idUsuario, List<UsuarioPerfil> usuarioPerfilList) throws ServiceException;
    
    public List<Opcion> getFirstLevelNodes(Long idUsuario, Long idModulo, String codZonal) throws ServiceException;

    public List<Accion> getOtherLevelNodes(Long idNodeSup, Long idUsuario, List<UsuarioPerfil> usuarioPerfilList, String codZonal) throws ServiceException;
    
    public List<Accion> getOtherLevelNodes(Long idNodeSup, Long idUsuario, String codZonal) throws ServiceException;

    public String retornaClaveEncriptada(String txtClave, String codUsuario) throws ServiceException;

    public List<HorarioPerfil> retornaHorarioPorPerfiles(List<UsuarioPerfil> usuarioPerfilList, String estado) throws ServiceException;

    public List<Usuario> getUsuarioByUnidadTerritorialZonalUsuario(String codZonal, String codUnidad, String codUsuario) throws ServiceException;
    
    public Modulo getModuloPadre(Long nidModulo) throws ServiceException;
}